#include<iostream>;
#include<string>;
#include<set>;
#include<vector>
using namespace std;
//int distinctPoints(string s, int k) {
//    set<pair<int, int>> ans;
//    pair<int, int> p = { 0,0 };
//    for (auto c : s) {
//        switch (c) {
//        case 'U':
//            p.second++;
//            break;
//        case 'D':
//            p.second--;
//            break;
//        case 'L':
//            p.first--;
//            break;
//        case 'R':
//            p.first++;
//            break;
//        }
//    }
//    pair<int, int> temp = p;
//    for (int i = 0; i < s.size(); i++)
//    {
//        switch (s[i]) {
//        case 'U':
//            temp.second--;
//            break;
//        case 'D':
//            temp.second++;
//            break;
//        case 'L':
//            temp.first++;
//            break;
//        case 'R':
//            temp.first--;
//            break;
//        }
//        if (i >= k - 1)
//        {
//            ans.insert(temp);
//            switch (s[i - k + 1]) {
//            case 'U':
//                temp.second++;
//                break;
//            case 'D':
//                temp.second--;
//                break;
//            case 'L':
//                temp.first--;
//                break;
//            case 'R':
//                temp.first++;
//                break;
//            }
//        }
//    }
//    return ans.size();
//}

long long maxProfit(vector<int>& prices, vector<int>& strategy, int k) {
    long long origin = 0;
    long long modifi = 0;
    long long talto = 0;
    long long profit = 0;
    for (int i = 0; i < prices.size(); i++)
    {
        talto += prices[i] * strategy[i];
        if (i < k - 1)
        {
            origin += prices[i] * strategy[i];
            if (i >= (k / 2))
            {
                modifi += prices[i];
            }
        }
        else
        {
            origin += prices[i] * strategy[i];
            modifi += prices[i];
            profit = max(modifi - origin, profit);
            origin -= prices[i - k + 1] * strategy[i - k + 1];
            modifi -= prices[i - (k / 2)+1];
        }

    }
    return talto + profit;
}
int main()
{
    //int ret = distinctPoints("LUL", 1);
    vector<int> prices = { 4, 7, 13 };
    vector<int> strategy = { -1, -1, 0 };
    long long ret = maxProfit(prices,strategy , 2);
    return 0;
}